编译器技术是计算机科学中一个研究领域，其任务是将源语言翻译成机器码。通常，此任务分为三个部分:前端、中端和后端。前端主要处理源语言，而中端执行转换并改进代码，后端负责生成机器码。由于LLVM核心库提供了中端和后端，我们将在本章中专注于前端的介绍。

本章中，将学习以下主题:

\begin{itemize}
\item
编译器的构建块，将了解编译器中的常用组件

\item
算术表达式语言，将介绍一种示例语言，并展示如何使用语法来定义语言

\item
词法分析，讨论如何实现语言的词法分析器

\item
语法分析，包括从语法构造解析器

\item
语义分析，将了解如何实现语义检查

\item
使用LLVM后端生成代码，讨论如何与LLVM后端进行接口，并将前面的所有阶段粘合在一起，创建完整的编译器
\end{itemize}












